home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
x68000.arc
/
SOURCE.ARC
/
OPERATIO.DEF
< prev
next >
Wrap
Text File
|
1985-12-03
|
3KB
|
60 lines
DEFINITION MODULE OperationCodes;
(* Initializes lookup table for Mnemonic OpCodes. Searches the table *)
(* and returns the bit pattern along with address mode information. *)
FROM Parser IMPORT
TOKEN;
EXPORT QUALIFIED
ModeTypeA, ModeTypeB, ModeA, ModeB, Instructions;
TYPE
ModeTypeA = (RegMem3, (* 0 = Register, 1 = Memory *)
Ry02, (* Register Rx -- Bits 0-2 *)
Rx911, (* Register Ry -- Bits 9-11 *)
Data911, (* Immediate Data -- Bits 9-11 *)
CntR911, (* Count Register or Immediate Data *)
Brnch, (* Relative Branch *)
DecBr, (* Decrement and Branch *)
Data03, (* Used for VECT only *)
Data07, (* Branch & MOVEQ *)
OpM68D, (* Data *)
OpM68A, (* Address *)
OpM68C, (* Compare *)
OpM68X, (* XOR *)
OpM68S, (* Sign Extension *)
OpM68R, (* Register/Memory *)
OpM37); (* Exchange Registers *)
ModeTypeB = (Bit811, (* BIT operations - bits 8/11 as switch *)
Size67, (* 00 = Byte, 01 = Word, 10 = Long *)
Size6, (* 0 = Word, 1 = Long *)
Size1213A, (* 01 = Byte, 11 = Word, 10 = Long *)
Size1213, (* 11 = Word, 10 = Long *)
Exten, (* OpCode extension required *)
EA05a, (* Effective Address - ALL *)
EA05b, (* Less 1 *)
EA05c, (* Less 1, 11 *)
EA05d, (* Less 9, 10, 11 *)
EA05e, (* Less 1, 9, 10, 11 *)
EA05f, (* Less 0, 1, 3, 4, 11 *)
EA05x, (* Dual mode - OR/AND *)
EA05y, (* Dual mode - ADD/SUB *)
EA05z, (* Dual mode - MOVEM *)
EA611); (* Used only by MOVE *)
ModeA = SET OF ModeTypeA;
ModeB = SET OF ModeTypeB;
PROCEDURE Instructions (MnemonSym : TOKEN;
OpLoc : CARDINAL; VAR Op : BITSET;
VAR AddrModeA : ModeA; VAR AddrModeB : ModeB);
(* Uses lookup table to find addressing mode & bit pattern of opcode. *)
END OperationCodes.